package coba.mailing.body;

import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.LinkedList;
import java.util.List;

import coba.mailing.model.Guia;
import coba.mailing.model.GuiaSolicitud;

public class Body4 {

	static String[] arrDiasSemana = { "Domingo", "Lunes", "Martes", "Mi&eacute;rcoles", "Jueves", "Viernes", "S&aacute;bado" };
	
	public static String get(String cid, List<Guia> listGuia, List<GuiaSolicitud> listGuiaSolicitud) {
		StringBuilder sb = new StringBuilder();

		sb.append("<html>");

		sb.append("<p>Buenos d&iacute;as!</p>");

		sb.append("<p>Los grupos que realizar&aacute;n las visitas la semana que viene son:</p>");

		for (int i = 1; i < 7; i ++) {

			boolean diaSemanaHeader = false;

			for (Guia guia : listGuia) {
				List<GuiaSolicitud> listGuiaSolicitudDelGuia = new LinkedList<GuiaSolicitud>();

				for (GuiaSolicitud guiaSolicitud : listGuiaSolicitud) {
					Calendar cal = GregorianCalendar.getInstance();
					cal.setTime(guiaSolicitud.getFechaItinerario());

					if (cal.get(Calendar.DAY_OF_WEEK) - 1 != i)
						continue;

					if (guiaSolicitud.getGuiaId().equals(guia.getGuiaId()))
						listGuiaSolicitudDelGuia.add(guiaSolicitud);
				}

				if (listGuiaSolicitudDelGuia.size() > 0) {
					if (!diaSemanaHeader) {
						sb.append("<h3>").append(arrDiasSemana[i]).append("</h3>");
						diaSemanaHeader = true;
					}
					
					sb.append("<h4>Gu&iacute;a: ").append(guia.getApellido()).append(", ").
							append(guia.getNombre()).append("</h4>");

					table(sb, listGuiaSolicitudDelGuia);
				}
			}

		}

		sb.append("<p>Muchas gracias!</p>");
		sb.append("<p>Saludos,</p>");

		sb.append("<p><img src=\"cid:" + cid + "\"></p>");

		sb.append("</html>");

		return sb.toString();
	}

	private static void table(StringBuilder sb, List<GuiaSolicitud> listGuiaSolicitud) {
		sb.append("<table style=\"border:solid 1px; border-collapse: collapse;\">");
		sb.append("<thead>");
		sb.append("<tr>");
		sb.append("<th style=\"border:solid 1px\">Instituci&oacute;n</th>");
		sb.append("<th style=\"border:solid 1px\">Itinerario</th>");
		sb.append("<th style=\"border:solid 1px\">Nombre contacto</th>");
		sb.append("<th style=\"border:solid 1px\">Tel&eacute;fono contacto</th>");
		sb.append("</tr>");
		sb.append("</thead>");
	
		sb.append("<tbody>");
	
		for (GuiaSolicitud guiaSolicitud : listGuiaSolicitud) {			
			sb.append("<tr>");
			sb.append("<td style=\"border:solid 1px\">").append(guiaSolicitud.getNombreInstitucion()).append("</td>");
			sb.append("<td style=\"border:solid 1px\">").append(guiaSolicitud.getItinerarioNombre()).append("</td>");
			sb.append("<td style=\"border:solid 1px\">").append(guiaSolicitud.getContactoNombre()).append(" ").append(guiaSolicitud.getContactoApellido()).append("</td>");
			sb.append("<td style=\"border:solid 1px\">").append(guiaSolicitud.getContactoTelefono()).append("</td>");
			sb.append("</tr>");
		}

		sb.append("</tbody>");
	
		sb.append("</table>");
	}

}
